Le programme est composé de deux parties indépendantes. Un noyau de communication et un noyau de "données"  propre au wiki. Le noyau de communication gere tout ce qui concerne le reseau propre (connexion, send, recv, thread, verrou, memoire partagée\dots ). Quant à l'espace "données", lui gère tout ce qui concerne les inscriptions/connexions, les groupes (adhesion/desinscription ), les catégories (consulter/créer/ modifier/supprimer), les articles ( consulter/créer/ modifier/supprimer), les droits de chaque article et de chaque catégorie...
voir diagramme de classe en annexe.

L'avantage indéniable d'une telle structure est la généricité de notre noyau de communication. En effet, celui-ci est completement indépendant des objets du wiki. Il pourrait très bien être ré-utilisé dans un autre programme totalement différent. La seule chose imposé est de respecter notre protocole de communication ( voir plus loin).
voir diagramme de sequence en annexe.
